游戏引擎Unity, Unreal, CryEngine的比较和扫雷

您所在的位置:网站首页 unity cacheserver v2 游戏引擎Unity, Unreal, CryEngine的比较和扫雷

游戏引擎Unity, Unreal, CryEngine的比较和扫雷

2023-03-14 05:42| 来源: 网络整理| 查看: 265

更新:现在是2023年3月。下面的内容还有效,但结论基本失效了。因为,Unity 和 Unreal经过几年的尝试,都曾经企图蚕食对方市场,但双方都失败了。

现在,已经不再需要去比较和扫雷游戏引擎了,主机PC就是Unreal,移动就是Unity。

为什么会各自锁死一个领域?因为:

Unreal他就是无法解决移动平台发热问题。手机烫到玩家根本不敢多玩游戏,那么当然就会影响开发商选择这个平台。而Unity自己分割自己,把自己划分成了HDRP, URP 和 传统RP,这三个基本互不兼容的模式。不光Unity内不兼容,开发者依赖的无数Unity插件,经常是3个通道互不兼容。并且,URP和传统RP开发的手机游戏,无法轻松移植成HDRP上桌面。而URP和传统RP,直接上桌面,画面没有竞争力。

也就是说,Unity想蚕食Unreal市场,全靠HDRP能否走红。而HDRP抛弃了Unity的一切配套,不光插件,连模型资源都要专门为HDRP设置,一切都要重来。因此,如果只把HDRP和Unreal去比,功能和配套,Unreal都是碾压获胜。

结果就是,两边侵占对方市场都失败。变成了现在,根本无需再比较游戏引擎的局面。

以下是以前的内容。

---------------

碰到游戏开发,一定会要面临在这3个引擎里面的选择。网上一搜,不管中英文,找到的比较文章浮于表面,不触及雷区,根本无法帮助开发者进行选择。

所以,自己亲自使用了3个引擎后,来帮大家扫雷,少走弯路。

先说结论:Unnreal最方便,最完善,有机会成为超越Unity的全平台首选。包括腾讯,网易在内,越来越多的公司选择用unreal开发手游。Unity经历转折期,最近有被大公司逐步淘汰的趋势。而小公司建议还是Unity。

游戏引擎的需求,一般来说有如下几个:平台支持,渲染效果,编辑器易用性,文档完善程度,编程难度,第三方包数量,引擎收费方式。

我们一个个来看。

1. 平台

unity和unreal如今都是全平台,包括手机。在手机上,unreal效果比unity好得多。

cryEngine目前开始支持手机,但是还在beta中。从视频效果看,和unreal是一个水准。(更新:cryEngine的手机支持beta了一年多,还没公测,应该是不用指望了)

注意,unity在2018年,推出 高品质的HDRP 和 适合手机的LWRP 两套流程。然后,又在2019年宣布,LWRP改名为URP(统一渲染流程),以后将逐渐取代标准流程。

也就是说,Unity实际上分为了2个体系:

体系1:原来的标准流程,这个流程,是跨平台的,而且渲染质量可以高、可低。但是性能不佳,官方想淘汰。体系2:HDRP+URP流程。其中,URP是跨平台的,性能好(提高35%),但是渲染效果一般,而且,URP完全使用CPU渲染,根本不用GPU(最近有了GPU渲染的预览版)。而HDRP专门用于挑战3A级效果。

更新:先说结论,建议Unity用户死守传统流程,无视URP和HDRP。

对于体系2,实际上不是真正意义跨平台了。因为URP的画面和CPU渲染方式,不具备和3A大作竞争的能力所以不会有人用来做PC和主机游戏。在PC、主机上,你只会选HDRP。

然而,因为HDRP推出至今2年多,整个体系依然还在变化中。并且,它的材质体系、设置项目等,所有需要在IDE里操作的东西,和 URP差异太大了。导致,你用HDRP开发的高品质PC游戏,将难以转为URP的手游,重做的工作量特别大。

也就是说,由于HDRP可用性低、适用范围小,和URP互不兼容,因此最好还是死守体系1,哪怕性能不太好。

反过来,unreal就没有这种尴尬,就一个体系,PC游戏,能够较少的工作量,就转为手机游戏。

2. 效果

自从Unity 5.x完全转战PBR体系后,它在PC/主机上渲染效果得到了飞跃式提升。因此,已经一些3A级游戏工作室,开始尝试用Unity做PC/主机游戏,这在以前是根本不可能的。

实际上,Unity、Unreal、CryEngine都使用了完全相同的物理渲染原理,如今拥有非常接近的渲染效果。

不同在于:

Unreal 4的灯光需要bake。所谓bake,就是用一个影视级渲染器,把光照效果,保存到贴图和数据结构里,游戏里就不用重新计算了。代价就是,要反复等待bake,场景大一点,bake会很花时间。Unreal 5开始,提供了2个新功能:第一个:和CryEngine相同的实时全局光技术。实际上,实时GI不是新东西,CryEngine已经使用好几年,只是Unreal一直拖着不做。第二个:模型和材质自动压缩系统。这个系统自动压缩你提供的原生模型和材质,这样,你可以把影视级别的模型、8K材质,直接拖入引擎,而不用关心压缩的事情。一个10亿面数的场景,大约会被压缩成2千万面,压缩率98%。然后,它只绘制会在屏幕范围内显示的面,所以庞大的高清场景,也能实时游玩。这个功能,Nvidia 早在1.5年之前,就已经演示过,Nvidia称之为“Mesh Shading”Unity连自己的新体系都没折腾好,这种新玩意,可能很久都不会支持。需要注意的是,Unreal 5的2个新功能,改善的是开发效率,并不能改善常规物体的渲染质量。比如人物,渲染质量将和Unreal 4一致。

Unity2019年起,采用混合模式:直接光是实时的,不bake,间接光bake。个人觉得这是兼容性最强的模式。Unreal 4的全bake模式,会导致开发者反复等待bake;而CryEngine和Unreal 5的全实时模式,则对配置要求较高,发热居高不下。

CryEngine不bake光照,只提供实时GI。这样,就在开发阶段,真正做到了所见即所得。CryEngine拥有自己的光线追踪体系,兼容N卡和A卡。目前,游戏的光线追踪,都是N卡独家,但CryEngine实现了能和A卡兼容的方案。

如今的实时GI,都基于Voxel-Based GI(以下简称VB GI)的论文,前2年,NVIDIA也到处宣传过。

VB GI也有局限,和Unreal 4的Baked GI一样,VB GI只计算静态物体,动态物体不反射GI,但接受GI。所以画面效果上,它和Unreal 4的Bake GI效果,其实是一回事。

VB GI的好处是,开发者不用面对反复bake的尴尬。这种尴尬,用unity和unreal 4做大场景时很常见。

也就是说,VB GI效果其实并没有提升,但是制作效率得到提高。

手机平台上,GI要么没有,要么经过阉割。这种情况下,Unreal的光照渲染效果,比unity好出一截。

然而,Unreal的手游有个致命问题:发热特别严重。尤其是,手机有保护壳,影响了散热的情况下,会烫到让人担心手机会不会烧坏的程度。这是Unreal至今无法大幅占领手游市场的最重要原因。

所以,哪怕Unreal其他方面非常优秀,还是要谨慎选择。

3. 编辑器易用性

Unreal完胜,而且是碾压级别的大获全胜。最能一眼看出区别的,就是材质系统。

Unreal拥有最直观,最方便,最强大的节点式材质。不管是设计人员,还是开发者,都能很舒服的上手,很舒服的使用和调整。

但缺点是,Unreal需要频繁等待材质编译。比如,导入一个模型,可能涉及上千个着色器,你每次都需要等编译等很久。

Unity则简陋的让人意外,尤其是作为一个热门游戏引擎。他有大量让人觉得别扭、不易理解的选项设置,操作也不便利,容易误操作,想调整设置,也不容易找到对应位置。

尤其是对于用过3dmax, maya, c4d的3D专业人士来说,Unity的材质体系,有点看不下去。

材质系统差异,只是冰山一角。功能强大方面,Unreal提供了你能想到的几乎所有功能。而Unity自身,很多功能都是缺失的,但是都能在市场买到。这个部分,可以往后看“第三方包”的环节了解详情。

另一个特别需要注意的,Unity的编辑器,制作大地图是很困难的,和Unreal完全不能比。因此,如果要制作大地图,一律Unreal,不要考虑Unity。Unity地图要尽量拆分成小副本之类的方式。

CryEngine的编辑器,难用的让人吐血。

最基本的,它打包过的资产/素材,浏览包内素材时,都没有预览图,只有文件名列表。当点选到某个资产时,才有预览窗口。也就是说,你要一个个去点选,看哪个素材是你要的,而不能从预览图列表一眼看出来。

(你自己项目导入的资源是有预览图的)

4. 文档完善程度

unreal和unity的文档完善程度,可以说不分上下,都很完善,不管是跟着向导走的新手,还是老手速查,都没有任何困难。

在新手引导方面,unity做的更好一点。因为unreal一上来,就以大型游戏的需求举例,提供的入门项目,也比unity的入门项目,更复杂一些。

而CryEngine的文档,可以用严重不足来形容。cryEngine当初做出了牛逼的引擎,却因为没有文档,没人会用,公司直接破产了一次,你敢信。幸好亚马逊把它买了,不然它就消失了。

CryEngine的文档存在2个问题:

(1)文档版本跟不上软件版本:

cryEngine 在v5开始,编辑器经历推倒重写,到v5.5,重写基本完成。

然而,由于更新频繁,官网教程 和 最新版编辑器对不上的情况,时有发生。另外,最新版的视频教程,其实放在官方youtube里,却没放在官网上,进一步刁难了新人。

(2)编程文档极度匮乏:

cryEngine的大部分文档,都是 编辑器 和 无代码的节点式编程 的。而C#/C++文档,极度匮乏。教你怎么新建脚本,怎么编译之后,直接就是API手册!

获得常用api的唯一方法,是查看官方提供的游戏模板项目的源码。

5. 编程难度

unreal只支持C++;unity主用C#;CryEngine从v5之后,C#和C++是同等待遇,并且提供Unity用户迁入指南。

在游戏编程方面,C++其实并不比C#复杂多少,但是,unreal的C++ 代码,总是给人一种不太易读的感觉。对比之后,发现差异在于api和变量命名。

Unity的api命名非常简洁易懂,而unreal的,不管是api还是示例代码,变量命名都特别臭长,而且命名比较难记。

Unreal的api不友善的命名,以及C++本身复杂性的名声在外,吓住了不少其实应该选择Unreal的用户。

6. 第三方包

unity压倒性的多,其他两个都不能比。但是,Unity自带功能也是压倒性的弱,Unreal自带的很多功能,Unity都没有,只能在市场买。

但unreal编辑器压倒性的强大,做游戏的大部分功能,unreal都想到并提供了。

比如:

双面材质,这是Unreal材质基本功能。unity连这个都没有,要靠市场的第三方shader。头发shader,这也是Unreal材质自带。Unity标准流程没有,只有HDRP才有,标准流程的头发shader,要去市场买,15美金。流式地图加载(玩家边跑边加载地图,从而无缝体验无限大地图),unreal本身就提供了,unity本身没有,也要去市场买,价格50美金。

CryEngine包就很少了,不过,官方很舍得给免费素材。一上来,就先给你4G免费素材库。然后,应用商店,再来一堆免费素材库。基本上,制作野外地图,你不再需要另找任何素材。但是,城市场景,它就没什么素材了。

7. 引擎收费

unity是收软件月费/年费,成本有上限。

unreal是收5%的游戏利润。

CryEngine有段时间是靠随意捐款,现在也改成了收5%的游戏利润。

结论

现在,Unreal闯入手游,Unity闯入3A级PC主机游戏,都在试图互相蚕食对手。但是,一般来说,还是:PC主机用Unreal,手游用Unity。

从具体衡量项目来看,在Unreal和Unity之间选择的关键在于:

1. 地图规模

PC和主机平台,并且制作大地图,就一律用Unreal。目前Unity不适合制作大地图,不是不能,而是比起Unreal,达到同样效果要辛苦很多。但是,手机平台,如果地图虽然很大,然而场景效果是明显缩水的(比如可爱Q版风格),那么Unity也可以考虑。

2. 游戏类型

不需要大地图的手游,一律Unity。因为Unreal发热特别严重,会让用户担心手机烧坏的程度,从而降低用户体验。不需要大地图的PC游戏,两者都可以考虑,但建议用Unreal。PC游戏要拼效果,Unreal提供了更真实的免费材质库。并且,一旦开始碰PC游戏,以后的项目也可能会涉及大地图。

3. 开发成本

Unreal写代码的成本高,C++开发慢、不易读、不易查,调试维护都更难,开发人员也更贵。Unity编辑器适应成本高,但写代码成本低,开发周期总体比Unreal要快。

4. 平台

一般建议,如果先做PC或主机版,就直接Unreal。因为Unity的编辑器功能,在开发PC和主机游戏的时候,是完全比不上Unreal的。

但如果先做手机版,建议直接Unity。因为Unreal手游发热特别严重,严重到会影响人气。

吃鸡、堡垒之夜的手游,都是unreal,你可以去搜索看那个发热,多少人在抱怨。

5. 收费

这个其实不用太考虑。如果做PC或主机游戏,还选择Unity,那么一定是因为开发人员的工资成本,而不是引擎收费。

但是,一般是不建议做这种别扭的选择的。正常情况,PC游戏就Unreal,不用考虑引擎收费问题。

CryEngine目前不值一用,虽然支持C#,但Unity也有3A水准的效果了,cryengine目前没有任何优势可言,除非以后它的文档完善了、手机支持也完善了

4. 附录:Unity HDRP、Build-in(传统流程)、URP的区别

Build-in:可以通过设置,能得到和HDRP、URP一致的渲染效果。但不支持实时区域光、不支持节点shader和特效,不支持光线追踪,3个流程中性能最差。

HDRP:支持庞大的灯光数量、拟真毛发系统、节点shader和节点特效制作、支持实时区域光、支持高光灯(只影响高光的灯)、支持N卡的Ray Tracing(光线追踪)。一切以追求3A效果为目标。材质拥有更多选项,调节比Build-in方便,但也更复杂。

2021.05更新:注意,HDRP的体系至今还在变化中,因此不建议使用。

URP:和HDRP一样采用线性色彩空间,但使用单通道前置渲染,性能比Build-in同设置高35%,而且未来将取代Build-in流程。支持节点shader,但不支持实时区域光。URP对灯光数量有严格限制。未来,URP会提供优化的后置渲染,就能增加灯光数量。URP最开始是全CPU渲染,不使用GPU。(写文时,有了GPU渲染的预览版。更新:如今是有限度的支持GPU)



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3